A significant aspect of software testing, both for software developers (e.g., software quality assurance teams) and Information Technology (“IT”) administrators, is determining how software will execute with different settings, on different types of hardware, and in different operating system environments. Thus, it may be important for software testers to be able to quickly change the configuration of a software testing environment.
To reduce the time involved in changing the configuration of a software testing environment, software testers may perform testing on virtual machine images. While using virtual machines images for testing may speed up many testing processes, such an approach may also introduce an additional test variable—the virtual machine. Sometimes, a software product that runs flawlessly on a virtual machine may have problems when running on a physical machine, and these problems may go undetected if the software is only tested on a virtual machine. Furthermore, using virtual machines for testing may still take a significant amount of time and consume significant resources, especially in situations where a software tester may want to test a software product using numerous relatively small configuration changes.
What is needed, therefore, is a more efficient and effective mechanism for testing software with different settings, using different types of hardware, in different operating system environments, and/or in any other context.